#include "modelo/Escenario.h"
#include "vista/Vista.h"
#include "constantes.h"
#include "modelo/Juego.h"
#include "modelo/Entidad.h"
#include "modelo/Personaje.h"
#include "yaml/Builder.h"
#include <list>

int main22(int argc, char* args[]) {

	Builder *unBuilder = new Builder("archivo.yaml");

	unBuilder->getArbol().imprimir();
	/*//Pantalla *unaPantalla = unBuilder->obtenerPantalla();
	Escenario *unEscenario = unBuilder->obtenerEscenario();
	unBuilder->obtenerTipoEntidades();
	list<Entidad*> listaEntidades = unBuilder->obtenerEntidades();

	//el obtener personajes le pasamos la velocidad que tendran los personajes
	// (ya que todavia no se obtienen por parametro), y un label que sera por lo que buscara
	// esto es para poder reutilizar el metodo dentro de obtenerProtagonistas.

	list<Personaje*> listaPersonajes = unBuilder->obtenerPersonajes("personaje",3);
	list<Personaje*> listaProtagonistas = unBuilder->obtenerProtagonistas();
	//Seteo las entidades, personajes y protagonistas en sus respectivas casillas
	unEscenario->setEntidadesenCasillas(listaEntidades);
	unEscenario->setPersonajesOProtagonistasenCasillas(listaPersonajes);
	unEscenario->setPersonajesOProtagonistasenCasillas(listaProtagonistas);
	//Inicializo las listas de personajes y protagonistas
	unEscenario->setPersonajes(listaPersonajes);
	unEscenario->setProtagonistas(listaProtagonistas);

	//Voy a testear esta verga
	cout << "Calculo el camino del personaje:" << endl;
	//Casilla* casillaDestino = new Casilla(5,3);
	//Casilla* casillaOrigen = unEscenario->getProtagonistas().front()->getCasillaActual();

	unEscenario->calcularCaminoPersonaje(unEscenario->getCasilla(2,1),unEscenario->getCasilla(5,3));

//	bool sigueCaminando = true;
//	bool sigueEnCasilla;
	bool puedeMover;
	bool puedeCambiarCasilla = true;
	while (puedeCambiarCasilla){
			puedeMover = unEscenario->actualizarPosicionPersonaje();
			if (!puedeMover){
	//			cout << "Casilla actual: (" << unEscenario->getProtagonistas().front()->getCasillaActual()->getX() << ", " << unEscenario->getProtagonistas().front()->getCasillaActual()->getY() << ")" << endl;

				cout <<"AHORA VOY A CAMBIAR DE CASILLA" <<endl;

				puedeCambiarCasilla = unEscenario->cambiarCasillaPersonaje();
			}

	}

	cout << "FIN" << endl;*/

	return 0;
}



